
package com.uuah.server.api.endpoint;

import java.util.Map;

import com.uuah.exception.lifecycle.InitialisationException;
import com.uuah.server.api.IUuahContext;
import com.uuah.server.api.context.IUuahContextAware;
import com.uuah.server.api.transformer.IBaseTransformer;
import com.uuah.server.api.transport.IConnector;
import com.uuah.server.api.transport.retry.RetryPolicyTemplate;
import com.uuah.server.endpoint.URIBuilder;
import com.uuah.server.exception.endpoint.EndpointException;


public interface IEndpointBuilder extends IUuahContextAware, Cloneable {

	IUuahEndpoint buildRequestEndpoint() throws EndpointException,
			InitialisationException;

	void setConnector(IConnector connector);


	void setRequestTransformer(IBaseTransformer requestTransformers);

	void setResponseTransformer(IBaseTransformer responseTransformer);

	void setName(String name);

	void setProperty(Object key, Object value);

	void setProperties(Map properties);

	void setSynchronous(boolean synchronous);

	void setIpFilter(boolean ipFilter);

	void setInitialState(String initialState);

	void setEncoding(String encoding);

	void setRegistryId(String registryId);

	void setUuahContext(IUuahContext uuahContext);

	void setRetryPolicyTemplate(RetryPolicyTemplate retryPolicyTemplate);

	void setURIBuilder(URIBuilder URIBuilder);

	Object clone() throws CloneNotSupportedException;
}
